home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / mactosh / cdev / gatekeep.sit / GateKeeper.rsrc / TEXT_-4047.txt < prev    next >
Text File  |  1989-06-12  |  19KB  |  220 lines

  1.  
  2.  
  3.  
  4.  
  5. ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á GateKeeper
  6.  
  7. The configure and forget approach to run-time virus protection, detection and analysis.
  8.  
  9. (or how to bar your door against the vandals)
  10.  
  11.  
  12.  
  13.  
  14. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  15. CONTENTS
  16.  
  17. ΓÇó  What GateKeeper Does
  18. ΓÇó  System Requirements
  19. ΓÇó  Towards A Virus-Free System
  20. ΓÇó  Standard Controls
  21. ΓÇó  Configuring GateKeeper
  22. ΓÇó  The GateKeeper Log File
  23. ΓÇó  Low-Level (Advanced) Configuration
  24. ΓÇó  Copyright Notice
  25. ΓÇó  Keeping Up With Updates
  26. ΓÇó  Bug Reports, Testaments of Appreciation
  27. ΓÇó  Credit Where Credit Is Due
  28.  
  29.  
  30. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  31. WHAT GATEKEEPER DOES
  32.  
  33. Simply put, GateKeeper attempts to make it impossible (or as difficult as possible) for viruses to spread or function successfully in its domain.  It does so by monitoring and limiting access to certain system operations on which viruses depend.  Thus GateKeeper is a general purpose tool in the fight against viruses, as opposed to programs written to stop only a specific virus or set of viruses.
  34.  
  35. Once configured, GateKeeper operates without the need for intervention by the user.  It provides facilities for warning the user of its intervention in the operation of the system, but will never require that the user make decisions on-the-fly about what operations should be allowed to occur or forced to fail.  GateKeeper ensures that such decisions are made automatically, transparently to the user and with total consistency.  It will also, if requested, keep a detailed log of all such decisions for later review.
  36.  
  37. GateKeeper is NOT a virus removal/repair utility.  GateKeeper endeavors to prevent viruses from infecting your system in the first place, and attempts to render them harmless if they should find their way in.
  38.  
  39. GateKeeper also provides powerful diagnostic facilities for those intent on tracking and analyzing viruses in the form of a log file to which records of the critical operations attempted by viruses are written.
  40.  
  41. GateKeeper is known to be effective against the Scores, nVIR, Hpat, INIT 29, ANTI, AIDS and MEV# viruses.
  42.  
  43.  
  44. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  45. SYSTEM REQUIREMENTS
  46.  
  47. GateKeeper will only operate on Macintoshes with the 128K ROMs, or better.  This includes the Macintosh 512Ke, Plus, SE, II and better.
  48.  
  49.  
  50. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  51. TOWARDS A VIRUS-FREE SYSTEM
  52.  
  53. GateKeeper is an extremely capable anti-virus/virus control tool, but it isnΓÇÖt necessarily the complete virus solution.  In order to help keep your system virus-free, consider the following recommendations:
  54.  
  55. ΓÇó  Use GateKeeper.  Avoid engaging the Override mode, or granting privileges to applications unless itΓÇÖs really necessary.
  56. ΓÇó  Use John NorstadΓÇÖs ΓÇ£DisinfectantΓÇ¥ virus detection and repair program (version 1.1 or better).  Remember that to use it with GateKeeper youΓÇÖll need to place GateKeeper in Override mode or grant Disinfectant all privileges.
  57. ΓÇó  Check the GateKeeper Log file periodically for records of operations other than ΓÇ£Installation,ΓÇ¥ ΓÇ£System Shutdown,ΓÇ¥ ΓÇ£Log File,ΓÇ¥ and ΓÇ£Override.ΓÇ¥  Other operations are likely to be virus related.
  58. ΓÇó  DonΓÇÖt pirate software.  Apart from all of the other good reasons, pirated software has usually gone through many hands and, consequently, has had many opportunities to pick up viruses.  Pirates are not, by definition, the sort of people you should ever trust.
  59. ΓÇó  If you use public domain software, get it from known, reliable and responsible sources.  Then check it anyway.
  60.  
  61.  
  62. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  63. STANDARD CONTROLS
  64.  
  65. There are three controls always visible and available in GateKeeper:  the ΓÇ£OverrideΓÇ¥ and ΓÇ£HelpΓÇ¥ push buttons, and the ΓÇ£Info/SettingsΓÇ¥ slide bar.
  66.  
  67. ΓÇ£OverrideΓÇ¥ puts GateKeeper in a mode in which it will allow any program to do anything no matter how virus-like it may appear.  Override will stay on for thirty minutes (so you donΓÇÖt accidentally leave it on), until you turn it off, or until the system is rebooted.
  68.  
  69. ΓÇ£HelpΓÇ¥ displays the GateKeeper help text (the stuff youΓÇÖre reading now).  To exit the help mode, click on the question mark again, or use the ΓÇ£Info/SettingsΓÇ¥ switch.
  70.  
  71. ΓÇ£Info/SettingsΓÇ¥ displays either the basic information text which appears when GateKeeper is first opened in the Control Panel, or the controls for setting application privileges.
  72.  
  73.  
  74. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  75. CONFIGURING GATEKEEPER
  76.  
  77. A few applications, INITs, etc. depend on performing operations that appear virus-like to GateKeeper.  For this reason it may be necessary to configure GateKeeper.  The process consists of telling GateKeeper what applications are allowed to perform suspicious operations, and just what kinds of operations those are.*ΓÇá
  78.  
  79. Privileged applications are identified by name.  GateKeeper does not concern itself with where an application is stored (either by folder or by disk), only with what it is named.  If youΓÇÖre concerned about users changing the names of privileged items, use a utility like ResEdit to set the System bit for those files.  This prohibits name changes in the Finder.
  80.  
  81. There are two basic classes of privileges:  Resource (Res) and File.  Within each class there are three different cases in which  privileges may granted/denied:  Other, System (Sys) and Self.  These specify what files may be modified, e.g. ΓÇ£SelfΓÇ¥ specifies that the application may make modifications to itself, and ΓÇ£OtherΓÇ¥ indicates that an application can make modifications to files other than itself and the System file.
  82.  
  83. The Resource (Res) class of privileges is concerned with the modification, addition and removal of resources in which the component(s) of programs are stored.  Operations on other types of resources are not controlled.
  84.  
  85. The File class of privileges is concerned with modifications to file information for files containing programs (this not only includes applications, but system files like Startup documents, and Control Panel documents).  Note that file information should be understood to mean information ABOUT files, as opposed to the information CONTAINED IN files.
  86.  
  87. GateKeeperΓÇÖs configuration controls are normally hidden.  To access them, click on the Info/Settings sliding switch until it appears in the ΓÇ£SettingsΓÇ¥ position.
  88.  
  89. NOTIFY ONLY
  90. NOTIFY & VETO
  91.  
  92. Two radio buttons are available in the ΓÇ£When AttackedΓÇ¥ area.  These let you tell GateKeeper whether it should monitor operations without interfering (ΓÇ£Notify OnlyΓÇ¥) or whether it should stop suspicious operations (ΓÇ£Notify & VetoΓÇ¥).
  93.  
  94. USER ALERT
  95. LOG FILE
  96.  
  97. Two check boxes in the ΓÇ£Notification MethodΓÇ¥ area allow you to choose the manner in which GateKeeper informs you of suspicious operations it has monitored/stopped.  The ΓÇ£User AlertΓÇ¥ check box allows you to request that alerts be used to inform you of GateKeeperΓÇÖs activities.  This option is only available on Macintoshes using System 6.0 or better.  The ΓÇ£Log FileΓÇ¥ check box permits you to request that all activities be recorded in the GateKeeper Log file.
  98.  
  99. INTERNAL ERRORS
  100. USER ALERT
  101.  
  102. The ΓÇ£User AlertΓÇ¥ check box in the ΓÇ£If Error OccursΓÇ¥ area allows you to specify whether or not errors generated within GateKeeper should be presented by alert.  This option is only available when the ΓÇ£User AlertΓÇ¥ check box in the ΓÇ£Notification MethodΓÇ¥ area is checked.   Internal errors will be recorded in the log file if it is turned on.
  103.  
  104. Internal errors are very rare and are generally caused by bugs in applications.  In order to ΓÇ£cureΓÇ¥ an application of internal errors, grant it all three File privileges.
  105.  
  106. ICON
  107.  
  108. The ΓÇ£IconΓÇ¥ check box in the ΓÇ£At StartupΓÇ¥ area letΓÇÖs you choose whether or not GateKeeperΓÇÖs icon will be displayed on the screen during system startup.  This is a purely ├ªsthetic matter that does not affect GateKeeperΓÇÖs ability to protect against viruses.
  109.  
  110. WHEN COMPARING NAMES
  111.  
  112. Two check boxes in the ΓÇ£When Comparing NamesΓÇ¥ area allow you to regulate how strict GateKeeper is when comparing names in the process of determining whether a program has privileges or not.
  113.  
  114. IGNORE CASE
  115.  
  116. The setting of the ΓÇ£Ignore CaseΓÇ¥ check box determines whether or not upper- and lower- case letters are considered to match, i.e. if ΓÇ£Ignore CaseΓÇ¥ is checked, a name like ΓÇ£Font/DA MoverΓÇ¥ WILL be considered to match the name ΓÇ£font/da moverΓÇ¥ even though some of the letters are not of the same case.
  117.  
  118. MATCH BEGINNINGS
  119.  
  120. The setting of the ΓÇ£Match BeginningsΓÇ¥ check box specifies whether or not a match between a name in the privilege list and the beginning of a programΓÇÖs name should be considered significant.  By way of example, suppose GateKeeper is trying to decide whether or not a program named ΓÇ£Font/DA Mover 3.8ΓÇ¥ has privileges and it finds that a program named merely ΓÇ£Font/DA MoverΓÇ¥ is present in the privilege list.  If ΓÇ£Match BeginningsΓÇ¥ is turned on, the two names will be considered to match, and ΓÇ£Font/DA Mover 3.8ΓÇ¥ will be granted the privileges given to ΓÇ£Font/DA MoverΓÇ¥.  If ΓÇ£Match BeginningsΓÇ¥ were turned off, the two names would not be considered to match and ΓÇ£Font/DA Mover 3.8ΓÇ¥ would not be granted any privileges.
  121.  
  122. NOTE:  If ΓÇ£Match BeginningsΓÇ¥ is turned on, leading spaces (both normal and non-breaking) are ignored.  This is true for both program names and the names in the privilege list.
  123.  
  124. PRIVILEGE LIST
  125.  
  126. The list that appears is the list of applications that have been granted privileges of some kind.  Beneath it are the check boxes that permit you define those privileges.  To the right of the list are three buttons:  ΓÇ£AddΓǪΓÇ¥, ΓÇ£EditΓǪΓÇ¥ and ΓÇ£ClearΓÇ¥.  ΓÇ£AddΓǪΓÇ¥ permits you to add an item to the list using the standard ΓÇ£OpenΓǪΓÇ¥ dialog box.  You can compel GateKeeper to display files regardless of their types by holding down the option key when clicking on the ΓÇ£AddΓǪΓÇ¥ button.  ΓÇ£EditΓǪΓÇ¥ lets you change the name of the listΓÇÖs currently selected item.  ΓÇ£ClearΓÇ¥ allows you to remove the currently selected item from the list.
  127.  
  128. So how do you know when to grant privileges to a program?  Before running a program for the first time, you should use your most trustworthy anti-virus disk scanning utility to check the program for viruses - otherwise you wonΓÇÖt know whether you are granting privileges to the program or a virus implanted within the program.
  129.  
  130. Once the program has been given a clean bill of health, go to the settings section of GateKeeper in the Control Panel.  Make certain that the check box labeled ΓÇ£User AlertΓÇ¥ in the ΓÇ£Notification MethodΓÇ¥ area is checked, and that the radio button labeled ΓÇ£Notify OnlyΓÇ¥ in the ΓÇ£When AttackedΓÇ¥ area is highlighted.  This tells GateKeeper NOT to stop suspicious operations, but to notify you that they occurred using an alert.  The alert will tell you exactly what privilege was violated by the program.
  131.  
  132. If youΓÇÖre worried that an application is infected with a virus that isnΓÇÖt detected by your virus detection utility (which is a possibility that should not be ignored), you may want to use the ΓÇ£Notify & VetoΓÇ¥ mode while testing it.  A well written application should be able to cope gracefully with any operations that are vetoed by GateKeeper in the course of your testing.  Unfortunately, thereΓÇÖs no way of knowing in advance whether an application actually is well enough written to cope gracefully, so be prepared for the possibility of some System Errors.
  133.  
  134. When you do run the program, be sure to put it through its paces - try out most operations - so that youΓÇÖll be as likely as possible to discover all of the privileges it requires.  Most programs do not require privileges, but care should always be taken to discover what (if any) privileges a program needs.
  135.  
  136. *WARNING:  Unless you want to effectively copy protect the applications and system files on your Mac (which has its uses), the Finder should be granted ΓÇ£FileΓÇ¥ privileges on ΓÇ£OtherΓÇ¥ files.  The Finder should NOT be granted RES privileges ΓÇô it doesnΓÇÖt need them.
  137.  
  138. ΓÇáNOTE:  If you should encounter an INIT or cdev that is fundamentally incompatible with GateKeeper, i.e. it crashes because of the mere presence of GateKeeper no matter what privileges it is granted, the INIT or cdev should be renamed so that it appears prior to GateKeeper in the FinderΓÇÖs ΓÇ£View By NameΓÇ¥ mode.  The best way to do this is to add two spaces to the beginning of the fileΓÇÖs name.  To do so, name the file ΓÇ£x..FileNameΓÇ¥ (where ΓÇ£.ΓÇ¥ is understood to be a space, and ΓÇ£FileNameΓÇ¥ is the fileΓÇÖs original name), then finish renaming it by going back and deleting the ΓÇ£xΓÇ¥.  The are no longer any INITs or cdevs known to be fundamentally incompatible with GateKeeper, so youΓÇÖll probably never need to worry about this.
  139.  
  140.  
  141. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  142. THE GATEKEEPER LOG FILE
  143.  
  144. GateKeeper maintains a log file containing a record of all events that occur on a system which appear significant to it.
  145.  
  146. The log file is a text-only data file.  All records in the log contain ten fields.  Fields are separated by tabs and records are separated by carriage returns.  This makes the file suitable for use with most word processors and spreadsheets.  (Of course, the fields wonΓÇÖt line up in columns unless you take a few moments to set the necessary tab stops in your word processor.)
  147.  
  148. Although the contents of most of the fields are strictly defined, several fields will contain different information depending on the operation being recorded.
  149.  
  150. The first two fields will always contain the date and time at which the record was made.  The third field contains the privilege (if any) that was violated by this operation.  The fourth field contains the name of the operation that is the subject of the record.  The following two fields will contain different information depending on the operation.  For resource operations, field 5 will contain a resource type and field 6 will contain an ID number for the ΓÇ£victimΓÇ¥ resource.  For file operations, field 5 will contain a fileΓÇÖs original type and field 6 will contain the type it would have been changed to.  For other operations (GateKeeper installation, system shutdown, etc.) field 5 contains the total number of writes made to the system disk, and field 6 is empty.
  151.  
  152. The remaining fields always contain the same type of information (where applicable).  Fields 7 and 8 contain the name of the file which was to be the ΓÇ£victimΓÇ¥ of the operation and the name of disk it was stored on.  Fields 9 and 10 contain the same information for the ΓÇ£attacker.ΓÇ¥
  153.  
  154.  
  155. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  156. LOW-LEVEL (ADVANCED) CONFIGURATION
  157.  
  158. The lists of resources and file types protected by GateKeeper are stored in resources in the GateKeeper file; using ResEdit it is possible to exercise significant control over the protection afforded by GateKeeper.
  159.  
  160. The list resources are of type 'Type'.  They are arrays of resource/file types headed by a long-word containing the number of types in the array.  Resource 1 contains the list of ΓÇ£SacredΓÇ¥ resources, i.e. the ones that need protecting.  By default this is a list of about 24 standard resource types known to contain executable code.  Resource 2 contains the list of ΓÇ£EvilΓÇ¥ resources ΓÇô the ones created solely by and for viruses.  The same restrictions that apply to sacred resources also apply to evil resources except that evil resources may be deleted.  Resource 3 contains the list of ΓÇ£SacredΓÇ¥ file types, i.e. file types that are understood to contain executable code or are otherwise considered significant to the system.
  161.  
  162. Please be EXTREMELY careful if distributing modified copies of GateKeeper - both the operation and reputation of this product depend on complete and accurate lists of the aforementioned types.
  163.  
  164.  
  165. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  166. COPYRIGHT NOTICE
  167.  
  168. GateKeeper, ┬⌐1989 by Chris Johnson.
  169. All Rights Reserved.
  170.  
  171. GateKeeper is free for non-commercial public distribution.  This means that you canΓÇÖt charge for it or bundle it with a product without my express written permission.  Bulletin-board systems are the sole exceptions to this rule.
  172.  
  173. PICT Control CDEF version 1.0.2 provided by Chris Johnson, ┬⌐1989.
  174.  
  175. The PICT Control CDEF is also free, and may be used to create an extraordinary variety of custom controls in any Macintosh application.  If youΓÇÖre interested in making use of the PICT Control CDEF be sure to get a copy of the installer/editor/demo application which contains complete on-line help and a host of sample control types.
  176.  
  177.  
  178. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  179. KEEPING UP WITH UPDATES
  180.  
  181. ItΓÇÖs important to keep your copy of GateKeeper up to date in order to help guarantee its safe and reliable operation.
  182.  
  183. If you do not have access to a reliable source of up-to-date publicly available software, you (or your local userΓÇÖs group, BBS, network administrator, etc.) can send a self addressed, stamped, letter size envelope and 25┬ó (to cover printing costs) to the address in the ΓÇ£Bug ReportsΓÇ¥ section below.  IΓÇÖll try to keep you informed of the availability of new versions of GateKeeper, as well as the discovery of new viruses.
  184.  
  185. When updates become available this will make it possible for me to notify you and explain how you can get the update ΓÇô in the mean time, please donΓÇÖt send diskettes.
  186.  
  187.  
  188. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  189. BUG REPORTS,
  190. TESTAMENTS OF APPRECIATION
  191.  
  192. I can be reached with questions, suggestions, bug reports, donations, job offers and other testaments of appreciation asΓǪ
  193.  
  194. US Mail:
  195.     Chris Johnson
  196.     3311 Red River #305
  197.     Austin, TX  78705
  198.  
  199. Internet:
  200.     chrisj@emx.utexas.edu
  201.  
  202. UUCP:
  203.     {husc6|uunet}!cs.utexas.edu!ut-emx!chrisj
  204.  
  205. AppleLink:
  206.     chrisj@emx.utexas.edu@dasnet#
  207.  
  208. IΓÇÖm always happy to reply to any mail that seems to need a reply.  If youΓÇÖre using US Mail it may take a bit of time, but including a SASE does help to speed up the process.
  209.  
  210.  
  211. ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö
  212. CREDIT WHERE CREDIT IS DUE
  213.  
  214. Thanks to the version 1.1.1 testers:  Dale M. Arends, Steve Baumgarten, Thomas R. Blake, Dave Busse, Bill Engels, Zbigniew Fiedorowicz, Ed Fortmiller, Jeff Harrow, Steven Johnson, Vahe Kassardjian, Zev Klein, Bill Lipa, Stuart A. Malone, Andrew Mason, Mike Merrifield, John Norstad, Edward Olsen, Dave Platt, Alexis Rosen, John Salmento, Rich Siegel, Robert Stewart, Robert J. Thum and Walter Vogel.
  215.  
  216. Thanks to Paul Mercer, Darin Adler, and Paul Snively for creating ShowINIT.
  217.  
  218. GateKeeper was written in Lightspeed CΓäó, version 3.01p3.  ItΓÇÖs an excellent product - if youΓÇÖre looking for a development system, consider it recommended strongly.
  219.  
  220. DISCLAIMER:  My employer had no involve- ment with this project.